/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package mx.itschapala.dsw2.estacionamiento.bl;

import java.util.Date;
import java.util.List;
import javax.ejb.EJB;
import javax.ejb.Stateless;
import mx.itschapala.dsw2.estacionamiento.dao.RegistroDaoLocal;
import mx.itschapala.dsw2.estacionamiento.enumeracion.EstadoRegistro;
import mx.itschapala.dsw2.estacionamiento.modelo.Registro;
import mx.itschapala.dsw2.estacionamiento.modelo.Vehiculos;
import mx.itschapala.dsw2.estacionamiento.modelo.Estacionamiento;

/**
 *
 * @author Lindemann
 */
@Stateless
public class RegistroBl implements RegistroBlLocal {

    @EJB
    private RegistroDaoLocal registroDao;
    long tiempo;
    long valorRecibido;
    long horaSS;

    
    @Override
    public void findRegister(Registro registro) {
        registroDao.find(registro);
    }

    @Override
    public Registro findById(Integer id) {
        return registroDao.find(id);
    }

    @Override
    public EstadoRegistro delete(Registro registro) {
        if (registro.getId() != null || registroDao.find(registro.getId()) != null) {
            registroDao.remove(registro);
            return EstadoRegistro.COMPLETE;
        } else {
            return EstadoRegistro.INCOMPLETE;
        }
    }

    @Override
    public List<Registro> getAll() {
        return registroDao.findAll();
    }

    @Override
    public EstadoRegistro createRegister(Vehiculos vehiculos, Registro registro, Estacionamiento estacionamiento) {
        if (registroDao.findDuplicity(registro)) {
            return EstadoRegistro.INCOMPLETE;
        } else {
            Registro r = new Registro();
            r.setFechaEntrada(new Date());
            r.setHoraEntrada(new Date());
            r.setFechaSalida(new Date());
            r.setHoraSalida(new Date());
            r.setIdEstacionamiento(estacionamiento);
            r.setIdVehiculos(vehiculos);
            r.setNoEspacio(registro.getNoEspacio());
            registroDao.create(r);
            return EstadoRegistro.COMPLETE;

        }
    }

    @Override
    public EstadoRegistro modify(Registro registro) {
        if (registro.getId() == null || registroDao.find(registro.getId()) == null) {
            return EstadoRegistro.INCOMPLETE;
        } else {
            tiempo = registro.getHoraEntrada().getTime();
            registro.setFechaSalida(new Date());
            registro.setHoraSalida(new Date());
        //    horaSS=new Date().getTime();
           // valorRecibido=horaSS-tiempo;
            registroDao.edit(registro);
            return EstadoRegistro.COMPLETE;
        }
    }

   
     
      
}
